专利摘要:
データ処理システム(10)は、第1(64,72)及び第2(66,74)ウェイを有するマルチウェイ・キャッシュを含むプロセッサを有する。第2ウェイは、第1ウェイに対して冗長であり、又は、第1ウェイに対して独立した、マルチウェイ・キャッシュのアソシエイティブウェイとして動作するように構成される。システムは、メモリ(18)を含み、プロセッサ(12)は、キャッシュ(60)におけるリードアドレスのヒットに応答して、リードアドレスをメモリ(18)に供給する。第2ウェイは、前記プロセッサ(12)において、エラー検出信号に応答して第1ウェイに対して冗長となるように動的に構成される。一形態では、第2ウェイが冗長に構成される場合、キャッシュ(60)におけるリードアドレスのヒットに応答して、リードアドレスのインデックス部分によりアドレス指定されたデータが第1および第2ウェイから供給されて互いに比較され、比較エラーが存在するかどうかが検出される。
公开号:JP2011507073A
申请号:JP2010536974
申请日:2008-11-21
公开日:2011-03-03
发明作者:ビー. エイファート、ジェームズ;ボーゲンベルガー、フロリアン;ラファエリ、ジェホダ
申请人:フリースケール セミコンダクター インコーポレイテッド;
IPC主号:G06F11-00
专利说明:

[0001] この開示は、概してメモリに関し、また、この開示は、特にメモリに対するエラー検出及びエラー訂正の少なくとも一方のためのシステムに関する。]
背景技術

[0002] 従来のキャッシュメモリは、バイトパリティを有する場合に、バイト毎に1つの欠陥のみを通常検出可能である。このようなキャッシュメモリでは、1バイトのうち2ビットの値を変更すると、欠陥は、検出されない。必要な欠陥許容度のレベルが高いシステムでは、エラーを訂正するように使用されるコードのハミング距離は、4つまで増加させることを要求される。しかしながら、増加されたハミング距離は、このようなキャッシュメモリを複雑にする。さらに、複雑なエラー訂正及びエラー検出は、キャッシュメモリの処理能力を低下させる。]
発明が解決しようとする課題

[0003] キャッシュメモリのあるユーザは、よりロバストなキャッシュメモリを有する限り、より低い処理能力に対応する不利益を受ける。しかしながら、キャッシュメモリの他のユーザは、キャッシュメモリのロバストネスについて認識せず、キャッシュメモリに関連する低い処理能力を好まない。従って、処理能力及びロバストネスの高いレベルを維持するとともに、両方のタイプのユーザを満足させる設定可能なキャッシュメモリが必要である。]
図面の簡単な説明

[0004] 本発明は、例として説明され、付随する図面により制限されず、その図面では、同じ参照が同様な要素を示す。その図面の要素は、簡潔かつ明確に説明され、必ずしも一定の縮尺で描かれていない。
キャッシュメモリに関連するデータ処理システムを示す。
例示的なキャッシュメモリを示す。
図2の例示的なキャッシュメモリ関連する例示的なキャッシュ制御部及び状態レジスタを示す。
図2の例示的なキャッシュメモリの例示的な部分を示す。
図2の例示的なキャッシュメモリに関連する例示的なエラー検出論理を示す。
図2の例示的なキャッシュメモリに関連するエラー検出及びエラー訂正を実行するための例示的な真理値表を示す。
図2の例示的なキャッシュメモリに関連するエラー検出及びエラー訂正を実行するための例示的な真理値表を示す。] 図2
実施例

[0005] 一形態では、プロセッサを含むデータ処理システムは、第1ウェイ及び第2ウェイを有する複数のキャッシュ・ウェイを備え、第2ウェイは、第1ウェイに対して冗長となるように、又は第1ウェイに対して独立したマルチウェイ・キャッシュのアソシエイティブウェイ(associative way)として動作するように構成可能である。さらに、データ処理システムは、プロセッサに接続されたメモリを含み、プロセッサは、マルチウェイ・キャッシュにおけるリードアドレスのミスに応答して、メモリにリードアドレスを供給する。]
[0006] 他の形態では、プロセッサを含むデータ処理システムが提供される。第1ウェイ及び第2ウェイを有するマルチウェイ・キャッシュを含むプロセッサは、第1モード又は第2モードにて動作するように構成可能であり、第1モードの動作では、第1ウェイ及び第2ウェイは、互いに独立してマルチウェイ・キャッシュのアソシエイティブウェイとしてそれぞれ動作し、第2モードの実行では、第2ウェイは、マルチウェイ・キャッシュにおけるリードアドレスのヒットに応答して、リードアドレスのインデックス部分によりアドレス指定されたデータが、第1ウェイ及び第2ウェイの両方から供給されて互いに比較され、比較エラーが存在するか否かの指示に応答して比較エラー信号が供給されるように第1ウェイに対して冗長であり、プロセッサは、マルチウェイ・キャッシュにおけるリードアドレスのミスに応答して、プロセッサ内のメモリにリードアドレスを供給する。]
[0007] さらに他の形態では、プロセッサを含むデータ処理システムが提供される。プロセッサは、第1モード又は第2モードにおいて動作するように構成可能であるn−ウェイ・アソシエイティブ・キャッシュ(n-way associative cache)を有し、第1モードの動作において、n−ウェイ・アソシエイティブ・キャッシュの各ウェイは、n−ウェイ・アソシエイティブ・キャッシュの独立したウェイとして動作し、第2モードの動作において、n−ウェイ・アソシエイティブ・キャッシュは、n/2−ウェイ・アソシエイティブ・キャッシュとして動作し、各n/2ウェイに対応するn−ウェイ・アソシエイティブ・キャッシュの他のウェイは、冗長なウェイとして動作する。]
[0008] 本明細書にて用いられる「バス」という用語は、データ、アドレス、コントロール、又は状態等の1つ又はそれ以上の様々な情報を伝達するように使用される複数の信号又は導体について言及するように用いられる。本明細書にて説明される導体は、1つの導体、複数の導体、一方向の導体、又は双方向の導体に関して描写又は記述される。しかしながら、異なる実施形態では、導体の構成が変更されてもよい。例えば、個別の一方向の導体は、双方向の導体よりも使用され、その逆も同様である。また、複数の導体は、シリアルにより、又は時間多重化方式により複数の信号を伝達する単体の導体に置き換えてもよい。同様に、複数の信号を伝達する単体の導体は、これらの信号のサブセットを伝達する様々な異なる導体に分離してもよい。従って、信号伝達のための多くの選択肢が存在する。]
[0009] 「アサート」又は「セット」、及び「ネゲート」(「デアサート」又は「クリア」)という用語は、信号、状態ビット、又は同様な装置を、論理的に「正」、又は論理的に「負」の
状態にそれぞれするときに明細書にて用いられる。論理的に「正」の状態が論理レベル“1”の場合、論理的に「負」の状態が論理レベル“0”となる。論理的に「正」の状態が論理レベル“0”の場合、論理的に「負」の状態が論理レベル“1”となる。]
[0010] 明細書に記載された各信号は、「正」の論理又は「負」の論理として構成され、「負」の論理は、信号名又は以下の名前の全てに対して、バーにより示される。負論理信号の場合では、信号はアクティブ・ローであり、論理的に「正」の状態は、論理レベル“0”に対応する。正論理信号の場合では、信号はアクティブ・ハイであり、論理的に「正」の状態は、論理レベル“1”に対応する。明細書にて記載された各信号は、負論理信号又は正論理信号として構成可能なことに留意されたい。従って、代替的な実施形態では、正論理信号として記載されたこれらの信号は、負論理信号として動作してもよく、負論理信号として記載されたこれらの信号は、正論理信号として動作してもよい。]
[0011] 図1は、キャッシュメモリと連携されたデータ処理システム10を示す。データ処理システム10は、1次(L1)キャッシュメモリ12を有するプロセッサ12、2次(L2)キャッシュメモリ14、主メモリ18、及び周辺モジュール20を含む。プロセッサ12は、主メモリ18及び周辺モジュール20にシステムバス22を介して接続される。L2キャッシュメモリ16は、プロセッサ12にシステムバス22又は異なるバスを介して接続される。L1キャッシュメモリ14は、プロセッサ12の一部分として示されるが、L1キャッシュメモリ14は、プロセッサ12にシステムバス22を介して接続されてもよい。L1キャッシュメモリ14及びL2キャッシュメモリ16は、マルチウェイ・アソシエイティブ・キャッシュメモリ又は他の好適なキャッシュメモリに設定されてもよい。図1は構成の特有の数及びこれら構成の特有の装置を示すが、より多く、又はより少ない構成が設けられてもよく、これらは異なって配置されてもよい。] 図1
[0012] 図2は、好適なL1キャッシュメモリ14を示す。L1キャッシュメモリは、制御回路24、キャッシュ制御および状態レジスタ(cache control and status register:CCSR)26、タグアレイ28、データアレイ30、キャッシュヒットおよびエラー検出論理38を含む。L1キャッシュメモリ14は、メインメモリ18へのリード/ライト動作に対応するアドレス及びデータの少なくとも1つを、プロセッサ12の内部に設けられたバス21を介して受信する。一実施形態では、タグアドレス等のアドレスは、アドレスバス32を介してタグアレイ28に送受信される。一実施形態では、データは、データバス34を介してデータアレイ30に送受信される。また、制御回路24は、タグアドレス及びデータ情報を、バス36を介して受信する。キャッシュヒットおよびエラー検出論理38は、バス44を介して制御回路と送受信する。キャッシュヒットおよびエラー検出論理38は、バス40を介してタグアレイ28と送受信し、バス42を介してデータアレイ30と送受信する。制御回路24は、CCSR26と連携し、CCSR26から状態情報を読み出し、又はCCSR26に制御情報を書き込む。図2は構成の特有の数及びこれら構成の特有の装置を示すが、より多く、又はより少ない構成が設けられてもよく、これらは異なって配置されてもよい。] 図2
[0013] 図3は、図2の好適なキャッシュメモリと連携する好適なキャッシュ制御および状態レジスタ(CCSR)26を示す。CCSR26は、L1キャッシュメモリ14に関する様々な制御情報及び状態情報のための複数の領域を含む。例として、CCSR26は、WIDビット46、MBEEビット48、WDDビット50、WAMビット52、CWMビット54、CPEビット56、CORREビット57、及びCEビット58等の様々な制御情報及び状態情報に関するビットを含む。WIDビット46は、L1キャッシュメモリ14の置換方式に関する。WIDビット46の一方は、ウェイ“0”に関し、他方は、ウェイ“1”に関する。WIDビットが「1」の場合、対応するウェイは、指示ミスラインが埋まることによる置換のために使用可能ではなく、しかし、一方、WIDビットが「0」の場合、対応するウェイは、指示ミスラインが埋まることによる置換のために使用可能となる。MBEEビット48は、マルチビットのエラー検出及びエラー訂正の少なくとも一方が有効となるか否かに関する。さらに、MBEEビット48の使用は、後述の構成にて説明される。WDDビット50は、L1キャッシュメモリ14のデータ置換方式に関する。WDDビットが「0」の場合、対応するウェイは、指示ミスラインが埋まることによる置換のために利用可能ではなく、しかし、一方、WDDビットが「1」の場合、対応するウェイは、指示ミスラインが埋まることによる置換のために利用可能となる。WAMビット52は、特有のアクセスタイプに基づく置換のために、ウェイが有効となるか否かに関する。例として、WAMビット52が「0」の場合、特有のアクセスタイプ(「データ」に対する「指示」)の置換が有効ではないウェイは、そのタイプのアクセスに対するキャッシュヒットについてチェックされ、特有のアクセスタイプのアクセスミスにより置換されない。一方、WAMビット52が「1」の場合、特有のアクセスタイプの置換が有効ではないウェイは、チェックされない。これにより、低消費電力となる。CWMビット54は、キャッシュ書き込みモード、即ちキャッシュメモリがライトスルーモード又はコピースルーモードにて動作するか否かに関する。CPEビット56は、キャッシュメモリパリティ検査が有効か否かに関する。CORREビット57は、エラー訂正が有効か否かに関する。CEビット58は、キャッシュメモリが有効か否かに関する。図3は、CCSR26の一部として特有のビット数及びビットタイプを示すが、CCSR26は、追加のビット数又は、より少ないビット数、及びビットの異なるタイプを含んでもよい。] 図2 図3
[0014] 図4は、好適な図2のL1キャッシュメモリ14の一部分60を示す。図2に関して上述したように、L1キャッシュメモリ14は、タグアレイ28及びデータアレイ30を含む。タグアレイ28は、A0 64、A1 66、A6 68、及びA7 70を含むタグアドレスのアレイを有する。図4は、8つのタグアドレスのアレイのみを示すが、タグアレイ28は、追加のアレイ又はより少ないアレイを含んでもよい。L1キャッシュメモリ14のデータアレイ部分30は、D072、D1 74、D6 76、及びD7 78を含むデータのアレイを有する。図4は8つのデータのアレイのみを示すが、データアレイ30は、追加のアレイ又はより少ないアレイを含んでもよい。一実施形態では、L1キャッシュメモリ14は、第1ウェイがタグアレイA0,A2,A4,A6に対応し、第2ウェイがタグアレイA1,A3,A5,A7に対応する2ウェイセット・アソシエイティブ・キャッシュメモリである。しかしながら、第2ウェイに対応するタグアレイは、第1ウェイに対して冗長なタグアレイとして、又は第1ウェイに対応するタグアレイのアソシエイティブウェイとして動作する。即ち、一実施形態では、第2ウェイは、第1ウェイに対して冗長となるように、又は第1ウェイとは独立したマルチウェイ・キャッシュのアソシエイティブウェイとして動作するように構成可能である。例えば、プロセッサがエラー検出に応答して動作する間であっても、第2ウェイは、第1ウェイに対して冗長となるように動的に構成可能である。このように、例えば、タグアレイA1 66は、タグアレイA0 64に対して冗長なタグアレイである。加えて、第2ウェイが第1のウェイに対して冗長となるように構成されるとき、L1キャッシュメモリ14におけるリードアドレスのヒットに応答して、アドレスのインデックス部分(例えば、アクセスアドレス62のインデックス部分)によりアドレス指定されたデータが、第1ウェイ及び第2ウェイの両方から供給されて互いに比較され、比較エラーが存在するかどうかが検出される。例として、タグアレイA0 64及びタグアレイA1 66の両方からのデータは、タグMBE比較器80を用いて比較される。同様に、タグアレイA6 68及びタグアレイ70からのデータは、タグMBE比較器82を用いて比較される。] 図2 図4
[0015] さらに図4を参照すると、第2ウェイに対応するデータアレイは、第1ウェイに対する冗長なデータアレイとして、又は第1ウェイに対応するデータアレイのアソシエイティブウェイとして動作可能である。例えば、プロセッサがエラー検出に応答して動作するときであっても、第2のウェイは、第1ウェイに対して冗長となるように動的に構成される。このように、例えば、データアレイD1 74は、データアレイD072に対して冗長なデータアレイである。さらに、第2ウェイが第1ウェイに対して冗長となるように構成されるとき、L1キャッシュメモリ14におけるリードアドレスのヒットに応答して、アドレスのインデックス部分(例えば、アクセスアドレス62のインデックス部分)によりアドレス指定されるデータは、第1ウェイ及び第2ウェイの両方から供給されて互いに比較され、比較エラーが存在するかどうかが検出される。このように、例えば、データアレイD0 72及びデータアレイD74からのデータは、データMBE比較器84を用いて比較される。同様な機能では、データアレイ76及びデータアレイ78からのデータは、データMBE比較器86を用いて比較される。1ビット単位の比較によりこれらの2つのアレイのいずれかからの値が互いに異なることを示す場合、エラー検出論理100は、エラーを示す。一実施形態では、MBEE信号、即ちマルチビットエラーイネーブル(multi-bit error enable)信号がアサートされるときのみ、エラー検出論理100は、エラーを生成する。プロセッサ12は、動作する場合にMBEE信号をアサートし、プロセッサ12は、エラー検出論理100の構成をその場で変更可能である。図4は冗長モードにおいて4ウェイ・キャッシュとして構成可能な8ウェイ・キャッシュを示すが、ウェイはいくつでも使用可能である。さらに、図4は、特有の方式にて配置された特有の数の構成を示すが、異なって配置されたより少ない構成又は追加の構成を使用可能である。] 図4
[0016] さらに図4に関して、ウェイ選択器88、ウェイ選択器90、ウェイ選択器92、及びウェイ選択器94は、タグアレイ(例えば、A0,A1,A6,A7)からのデータリードを用いてパリティを計算する。計算されたパリティは、読み出されたタグアドレスに対応する記憶されたパリティと比較されて、パリティエラーが存在するか否かが検出される。ウェイ選択器ブロックの出力は、ウェイ選択器ブロックにより生成されたパリティエラーをさらに処理可能となるようにエラー検出論理に接続される。また、データ選択器96は、データアレイ(例えば、D0,D1,D6,D7)から読み出されたデータに基づいてパリティの計算を実行する。生成されたパリティビットは、データパリティバスを介してエラー検出論理100に送受信される。要するに、第2ウェイが第1ウェイに対して冗長となるように構成されるとき、パリティ計算は、第1のウェイ及び第2のウェイの各々からのリードアドレスのインデックス部分によりアドレス指定されたデータに基づいて実行され、リードアドレスのインデックス部分によりアドレス指定されたデータ内に記憶された対応するパリティビットと比較され、パリティエラーが存在するかどうかが検出される。] 図4
[0017] 図5は、図2のキャッシュメモリに関連する好適なエラー検出論理100を示す。例として、エラー検出論理100は、タグパリティエラー、マルチビットエラー、及びデータパリティエラーを検出する。一実施形態では、エラー検出論理100は、ORゲート104,106,110,116を含む。さらに、エラー検出論理100は、アンドゲート108,114を含む。さらに、エラー検出論理100は、MBE選択器ブロック112を含む。ウェイ選択器モジュール(例えば、88,90,92,94)により生成されたタグパリティエラーは、タグパリティ0〜7のラインを介してオアゲート104の入力に連結される。例として、タグパリティエラーは、各タグパリティライン上にアサートされた論理“1”により示される。タグMBE比較器モジュール(例えば、80,82)により生成されたマルチビットエラーは、タグMBE0〜3のラインを介してオアゲート106の入力に連結される。オアゲート106の出力は、アンドゲート108の他の入力に連結される。例として、マルチビットエラーは、各タグMBEライン上にアサートされた論理“1”により示される。動作において、タグMBEラインのいずれかに論理“1”がアサートされる場合、オアゲート106の出力は論理“1”である。このように、オアゲート106の出力が論理“1”、また、MBEE信号が論理“1”の場合、アンドゲート108の出力は論理“1”である。オアゲート104の出力は、オアゲート110の入力に連結され、アンドゲート108の出力は、オアゲート110の他の入力に連結される。このような構成により、オアゲート104の出力又はアンドゲート108の出力が論理“1”の場合、タグパリティエラーのライン上に論理“1”がアサートされる。要するに、一実施形態では、エラー検出論理100は、タグパリティエラーのライン上に論理“1”をアサートする:(1)タグパリティエラーがあるとき、(2)マルチビットエラーがあるとき、(3)タグパリティエラー及びマルチビットエラーの両方があるとき。図5は、タグパリティエラーのライン上に論理“1”をアサートするために特有の方式に基づいて配置された特有の数の構成を示すが、異なる配置により少ない構成又は追加の構成は使用可能である。] 図2 図5
[0018] さらに図5を参照すると、エラー検出論理100は、データパリティエラーのライン上にデータパリティエラーを生成する。例として、データMBE比較器ブロック(例えば、84,86)により生成されたマルチビットエラーは、データMBE0〜3のラインを介してMBE選択器112に連結される。MBE選択器112は、ウェイ選択器のラインを介して受信された入力に基づいて、4つの入力のうちの1つの入力を選択し、選択した入力を自身の出力に連結する。一実施形態では、MBE選択器112は、4つから1つを選択するマルチプレクサとして動作する。MBE選択器112の出力は、アンドゲート112の入力に連結される。MBEE信号は、アンドゲート114の他の入力に連結される。例として、マルチビットエラーは、各データMBEのライン上に論理“1”がアサートされることにより示される。動作において、データMBEのライン上のいずれかに論理“1”がアサートされる場合、MBE選択器112の出力は、論理“1”である。このように、MBE選択器112の出力が、選択されたデータに対応するマルチビットエラーを示す論理“1”、また、MBEE信号が論理“1”の場合、アンドゲート114の出力は論理“1”である。アンドゲート114の出力は、オアゲート116の入力に連結され、データパリティのラインは、オアゲート116の他の入力に接続される。このような構成により、アンドゲート114の出力が論理“1”の場合、又はデータパリティエラーがある場合、オアゲート116の出力は、論理“1”となる。これにより、データパリティエラーのライン上に論理“1”がアサートされるという結果となる。図5は、データパリティエラーのライン上に論理“1”をアサートするために、特有の方式に基づいて配置された特有の数の構成を示すが、異なる配置のより少ない構成又は追加の構成が使用可能である。エラー検出論理100に検出されたエラーは、エラーのラインを介して外部の構成に送信される。] 図5
[0019] 図6は、図2の好適なキャッシュメモリに関連するエラー訂正を実行するための好適な真理値表120を示す。真理値表120は、論理値“1”又は論理値“0”を有することができて変更可能なセットに相当する列のセットを含む。真理値表120の行は、真理値表120の列のセットに対する好適な値を含む。列122は、未訂正のウェイ“0”に関する変数UCW0に対する値を有する。列124は、未訂正のウェイ“1”に関する変数UCW1に対する値を有する。列126は、エラー訂正が有効か否かに関する変数CORR_Eに対する値を有する。列128は、ウェイ“0”のデータにパリティエラーがあるか否かに関する変数PE0に対する値を有する。列130は、ウェイ“1”のデータにパリティエラーがあるか否かに関する変数PE1に対する値を有する。列132は、訂正されたウェイが選択されたか否かに関する変数CW0に対する値を有する。真理値表120は、この表又は他の表に記憶されたUCW2〜7等のいくつかの変数及び他の変数に対する好適な値を単に示す。動作において、真理値表120の機能は、論理モジュール、ソフトウェア、及びソフトウェアとハードウェアとの組合せの少なくとも1つにより実行される。動作において、変数CORR_E126の値を論理“1”に設定することによりエラー訂正モードが有効の場合、訂正ウェイ適合信号は、未訂正のタグウェイビットのパリティチェックエラーに基づいて、2つの未訂正ウェイ適合信号から選択される。UCW0が論理“0”の場合、このことは、未訂正のウェイ“0”が選択されたウェイではないことを示す。UCW1が論理“0”の場合、このことは、未訂正のウェイ“1”が選択されたウェイではないことを示す。この場合、変数PE0,PE1の値に関わらず、訂正されたウェイ“0”は、選択されない。このことは、真理値表120においてUCW0及びUCW1の両方が論理“0”の場合に変数PE0,PE1に対応する「X」(無関係)及び変数CW0に対する論理“0”を有することにより示される。ウェイ“0”及びウェイ“1”から1つのウェイが選択される場合、訂正ウェイは、変数PE0,PE1の値に基づいて選択される。例として、真理値表120の第2行は、未訂正のウェイ“0”が選択されたウェイであることを示す変数UCW0が論理“1”である場合を示す。この場合、変数UCW1は、「無関係」であり、変数CORR_Eは、訂正が有効であることを示す論理“1”に設定される。PE0は、ウェイ“0”にパリティエラーがないことを示す“0”である。従って、CW0は、訂正されたウェイ“0”が選択されたことを示す論理“1”を有する。真理値表120の残りの行は、変数に対する異なる値と訂正されたウェイ“0”に対応する値とを有する追加の条件を示す。当業者は、図6に示された以外の値を用いた真理値表120を実行することができる。図6は、特有の方式に基づいて配置された特有の列数の変数及び特有の行数を示すけれども、より少ない列及び追加の列の少なくとも一方、より少ない行及び追加の行の少なくとも一方を異なる構成にて用いてもよい。] 図2 図6
[0020] 図7は、図2の好適なキャッシュメモリに関連するエラー訂正を実行するための他の好適な真理値表を示す。一実施形態では、真理値表150の機能は、図4に示されたデータ選択器96の一部として実装される。データ選択器96は、2つのウェイのバイトパリティエラー情報に基づいて、2つのウェイのデータのうちの1つのウェイのデータを選択する。例えば、D0,D1からのバイト0は、図4に示すように、D0,D1のバイト0パリティエラー情報に基づいて選択される。図7は、簡単かつ明確という目的にてD0,D1及びバイト0のみを示す一実施形態を例示する。他の2つのウェイからのデータ選択及び他のバイト数は、同じスキームを用いて処理する。真理値表150は、論理値“1”又は論理値“0”を有することが可能な変数のセットに対応する列のセットを含む。真理値表150の行は、真理値表150の列のセットに対する好適な値を含む。列152は、D0 バイト0(「0」はパリティエラーがないことを意味し、「1」はパリティエラーを意味する)に対するパリティエラーの論理状態を示す変数D0 バイト0 PEに対応する値を有する。列154は、D1 バイト0(「0」はパリティエラーがないことを意味し、「1」はパリティエラーを意味し、「X」は、「無関係」を意味する)に対するパリティエラーの論理状態を示す変数D1 バイト0 PEに対応する値を有する。D0 バイト0 PEが「0」の場合、バイト0は、D1 バイト0 PEの状態に関係なく選択される。第2のケースでは、D0 バイト0 PEがパリティエラーを示す「1」、反対に、D1 バイト0 PEが「0」の場合、D1からのバイト0が選択される。この場合、D1のデータは、D0のデータと置き換えるように使用される。最後の事例では、D0 バイト0 PE及びD1 バイト0 PEが両方のウェイのバイトを示す「1」の場合、2つのデータブロックはエラーを有する。この場合、データバイトは、使用されず、エラーフラグがセットされる。この場合は、「X」としてのテーブルの最後の行を示す。当業者は、図7に示された以外の値を用いた真理値表150を実行可能である。図7は、特有の方式に基づいて構成された特有の列数の変数及び特有の行数を示すが、より少ない列及び追加の列の少なくとも一方、より少ない行及び追加の行の少なくとも一方を異なる構成にて用いてもよい。] 図2 図4 図7
[0021] いくつかの上記の好適な実施形態は、様々な異なる情報処理システムを用いて実行されてもよい。例えば、図1及びそれの説明は好適なデータ処理アーキテクチャを説明するが、この好適なアーキテクチャは、本発明の様々な側面の説明から効果的な参照を単に提供することを示す。勿論、アーキテクチャの説明は、説明の目的のために簡潔となっており、本発明に従って用いられる適切なアーキテクチャの複数の異なるタイプのうち一つのタイプのみである。当業者は、単に例示された論理ブロック間の境界は単に例示しただけであり、代替的な実施形態が、論理ブロック又は回路素子をマージするか又は、様々な論理ブロック又は回路素子に基づいて代替手段への機能分解を強いることを認識するだろう。] 図1
[0022] このように、本明細書において説明されるアーキテクチャは単なる例示に過ぎず、実際には同じ機能を実現する多くの他のアーキテクチャを用いることができることが理解し得る。要するに、同じ機能を実現するあらゆる構造の構成要素を効果的に「関連付ける」ことにより、所望の機能を実現することができる。従って、本明細書において特定の機能を実現するために組み合わされるいずれの2つの構成要素も、互いに「関連付ける」ことにより、所望の機能を、アーキテクチャまたは中間構成要素にかかわらず実現することができる。同様に、このようにして関連付けたいずれの2つの構成要素も、所望の機能を実現するために、互いに「動作可能に接続される」または「動作可能に連結される」ものとして見なすこともできる。]
[0023] また例えば、一実施形態では、例示されたデータ処理システム10の要素は、単体の集積回路又は同じデバイス内に配置される。代替的には、データ処理システム10では、いくつかに分離された集積回路又は分離したデバイスが、互いに相互に接続される。例えば、メモリ18は、プロセッサ12としての同じ集積回路、または分離された集積回路に配置され、またはシステム10の他の要素から分離された個別の周囲装置又はスレーブに配置される。周辺モジュール20は、分離された集積回路又はデバイスに配置される。例えば、データ処理システム又はそれの一部は、物質的な回路内の変更可能な論理的な表現を記述されたソフト又はコードである。そのように、データ処理システム10は、いずれかの適切なタイプのハードウェア記述言語が搭載される。]
[0024] さらに、当業者は、上記動作の機能境界を単に例示的なものであるとして認識するだろう。複数の動作機能は、追加動作として分配された1つの動作、および1つの動作機能の少なくとも1つが組み合わされる。さらにまた、代替的な実施形態は、特有動作の複数の例を含み、動作順序は、様々な他の実施形態において変更されてもよい。]
[0025] 本発明について本明細書では、特定の実施形態を参照しながら説明してきたが、種々の変形及び変更を、請求項に示す本発明の範囲から逸脱しない限り加えることができる。従って、本明細書及び図面は制限的な意味ではなく例示として捉えられるべきであり、全てのこのような変形は本発明の範囲に包含されるべきものである。特定の実施形態に関して本明細書において説明されるいずれの効果、利点、または問題解決法も、いずれかの請求項または全ての請求項の必須の、必要な、または基本的な特徴または要素であると解釈されるべきではない。]
[0026] 本明細書において用いられた「連結される」という用語は、直接的な連結または機械的な連結に制限されるべきではない。
特に記載がある場合以外は、「第1」、「第2」という用語は、こうした用語によって説明される要素を任意に区別するために使用されている。したがって、これらの用語がこうした要素の一時的あるいはその他の優先順位を必ずしも意味するとは限らない。]
权利要求:

請求項1
データ処理システムであって、第1ウェイ及び第2ウェイを有するマルチウェイ・キャッシュを含むプロセッサであって、前記第2ウェイは、前記第1ウェイに対して冗長であるか、又は、前記第1ウェイに対して独立した、前記マルチウェイ・キャッシュのアソシエイティブウェイとして動作するように構成可能である前記プロセッサと、前記プロセッサに接続されたメモリとを備え、前記プロセッサは、前記マルチウェイ・キャッシュにおけるリードアドレスのミスに応答して、前記メモリに前記リードアドレスを供給する、データ処理システム。
請求項2
前記第2ウェイは、前記プロセッサの動作中にエラー検出指示に応答して前記第1ウェイに対して冗長となるように動的に構成される、請求項1に記載のデータ処理システム。
請求項3
前記第2ウェイが前記第1ウェイに対して冗長となるように構成される場合に、前記マルチウェイ・キャッシュにおける前記リードアドレスのヒットに応答して、前記リードアドレスのインデックス部分によりアドレス指定されたデータが、前記第1ウェイ及び前記第2ウェイから供給されて互いに比較され、比較エラーが存在するかどうかが検出される、請求項1に記載のデータ処理システム。
請求項4
前記第2ウェイが前記第1ウェイに対して冗長に構成される場合、パリティ計算は、前記第1ウェイ及び前記第2ウェイの各々からの前記リードアドレスのインデックス部分によりアドレス指定された前記データに対して実行され、前記リードアドレスの前記インデックス部分によりアドレス指定された前記データ内に格納された対応するパリティビットを比較して、パリティエラーが存在するかどうかが検出される、請求項3に記載のデータ処理システム。
請求項5
前記第1ウェイは、第1タグアレイ及び第1データアレイを含み、前記第2ウェイは、第2タグアレイ及び第2データアレイを含み、前記第2ウェイが前記第1ウェイに対して冗長に構成される場合、前記第2タグアレイは、前記第1タグアレイに対して冗長であり、前記第2データアレイは、前記第1データアレイに対して冗長であり、前記マルチウェイ・キャッシュにおける前記リードアドレスのヒットに応答して、前記リードアドレスの前記インデックス部分によりアドレス指定される前記データは、互いに比較される前記第1タグアレイ及び前記第2タグアレイからの前記インデックス部分によりアドレス指定されたタグ情報、および互いに比較される前記第1データアレイ及び前記第2データアレイの両方からのインデックス部分によりアドレス指定されるデータ情報を含む、請求項3に記載のデータ処理システム。
請求項6
データ処理システムであって、第1ウェイ及び第2ウェイを有するマルチウェイ・キャッシュを含み、第1モード及び第2モードにて動作するように構成されるプロセッサであって、前記第1モードの動作において、前記第1ウェイ及び前記第2ウェイは、互いに独立して、前記マルチウェイ・キャッシュのアソシエイティブウェイとしてそれぞれ動作し、前記第2モードの動作において、前記第2ウェイは、前記マルチウェイ・キャッシュにおけるリードアドレスのヒットに応答して、前記リードアドレスのインデックス部分によりアドレス指定されるデータが前記第1ウェイおよび第2ウェイから供給されて互いに比較され、その比較に応答して比較エラーが存在するか否かを示す比較エラー信号を供給するように第1ウェイに対して冗長である、前記プロセッサを含み、前記プロセッサは、前記マルチウェイ・キャッシュにおける前記リードアドレスのミスに応答して、前記プロセッサに対する外部のメモリに前記リードアドレスを供給する、データ処理システム。
請求項7
前記マルチウェイ・キャッシュは、キャッシュ制御レジスタを含み、前記キャッシュ制御レジスタのエラー検出イネーブル領域に基づいて、第1モードまたは第2モードにおいて動作するように構成される、請求項6に記載のデータ処理システム。
請求項8
前記第1ウェイおよび前記第2ウェイのそれぞれからの前記リードアドレスの前記インデックス部分によりアドレス指定された前記データは、パリティビットを含む、請求項6に記載のデータ処理システム。
請求項9
前記第2モードの動作において、パリティ計算は、前記第1ウェイおよび前記第2ウェイのそれぞれからの前記リードアドレスの前記インデックス部分によりアドレス指定された前記データに対して実行されて、そのデータに対応するパリティビットが比較され、その比較に応答してパリティエラーが存在するか否かを示すパリティエラー信号が供給される、請求項8に記載のデータ処理システム。
請求項10
前記第2モードの動作において、前記マルチウェイ・キャッシュは、前記比較エラー信号および前記パリティエラー信号に基づいてエラー信号を供給する、請求項9に記載のデータ処理システム。
請求項11
前記マルチウェイ・キャッシュの前記第1ウェイは、第1タグアレイを含み、前記マルチウェイ・キャッシュの第2ウェイは、第2タグアレイを含み、前記第2モードの動作において、前記第2タグアレイは、前記インデックス部分によりアドレス指定されたタグは、前記第1タグアレイおよび前記第2タグアレイの両方から供給されて互いに比較され、前記比較エラー信号が供給されるように第1タグアレイに対して冗長である、請求項6に記載のデータ処理システム。
請求項12
前記マルチウェイ・キャッシュの第1ウェイは、第1データアレイを含み、前記マルチウェイ・キャッシュの第2ウェイは、第2データアレイを含み、前記第2モードの動作において、前記第2データアレイは、前記インデックス部分によりアドレス指定された前記データが、前記第1データアレイおよび前記第2データアレイから供給されて互いに比較され、前記比較エラー信号が供給されるように前記第1データアレイに対して冗長である、請求項6に記載のデータ処理システム。
請求項13
前記第2モードの動作において、前記第1データアレイおよび前記第2データアレイから供給される前記インデックス部分によりアドレス指定された前記データは、複数のバイトを含み、前記比較エラー信号は、前記複数のバイトの各バイトに比較エラーが存在するか否かを示す複数ビット信号である、請求項12に記載のデータ処理システム。
請求項14
前記プロセッサに対する外部の前記メモリを含む、請求項6に記載のデータ処理システム。
請求項15
前記マルチウェイ・キャッシュは、前記比較エラー信号に少なくとも部分的に基づいて、前記リードアドレスの前記インデックス部分によりアドレス指定された前記データにおけるエラーを選択的に訂正するエラー訂正論理を含む、請求項6に記載のデータ処理システム。
請求項16
データ処理システムであって、nウェイ・アソシエイティブ・キャッシュを有し、第1モードまたは第2モードにおいて動作するプロセッサであって、前記第1モードの動作において、前記nウェイ・アソシエイティブ・キャッシュの各ウェイが、前記nウェイ・アソシエイティブ・キャッシュの独立したウェイとして動作し、前記第2モードの動作において、前記nウェイ・アソシエイティブ・キャッシュは、n/2ウェイ・キャッシュとして動作し、前記n/2ウェイのそれぞれに対して、前記nウェイ・アソシエイティブ・キャッシュの他のウェイが、対応する冗長なウェイとして動作する、前記プロセッサを備える、データ処理システム。
請求項17
前記第2モードの動作において、マルチウェイ・キャッシュにおけるリードアドレスのヒットに応答して、前記リードアドレスのインデックス部分によりアドレス指定された前記データが、前記n/2ウェイおよび該n/2ウェイに対応する冗長なウェイのそれぞれから供給されて互いに比較され、いくつかの比較エラーが存在するかどうかが検出される、請求項16に記載のデータ処理システム。
請求項18
前記第2モードの動作において、パリティ計算は、前記n/2ウェイおよび該n/2ウェイに対応する冗長なウェイのそれぞれからの前記リードアドレスの前記インデックス部分によりアドレス指定された前記データに対して実行され、いくつかのパリティエラーが存在するかどうかが検出される、請求項17に記載のデータ処理システム。
請求項19
nは、2以上の整数であり、前記第2モードにおいて、nが2である場合に、前記nウェイ・アソシエイティブ・キャッシュが直接マップドキャッシュとして動作し、nが2より大きい場合、前記nウェイ・アソシエイティブ・キャッシュがセット・アソシエイティブ・キャッシュとして動作する、請求項16に記載のデータ処理システム。
請求項20
マルチウェイ・キャッシュは、前記プロセッサの動作中に、プログラム可能なエラー検出指示に応答して、前記第1モードまたは前記第2モードにおける動作をするように動的に構成される、請求項16に記載のデータ処理システム。
类似技术:
公开号 | 公开日 | 专利标题
US9575901B2|2017-02-21|Programmable address-based write-through cache control
US9652404B2|2017-05-16|Multicore, multibank, fully concurrent coherence controller
US8671329B2|2014-03-11|Low overhead and timing improved architecture for performing error checking and correction for memories and buses in system-on-chips, and other circuits, systems and processes
US8493797B2|2013-07-23|Memory system and method having volatile and non-volatile memory devices at same hierarchical level
US9252814B2|2016-02-02|Combined group ECC protection and subgroup parity protection
CN102782654B|2015-03-11|用于执行回拷操作的方法和控制器
TW583541B|2004-04-11|Using type bits to track storage of ECC and predecode bits in a level two cache
JP5960517B2|2016-08-02|フラッシュメディアコントローラの内部のメタデータハンドリング
US6496902B1|2002-12-17|Vector and scalar data cache for a vector multiprocessor
US7032158B2|2006-04-18|System and method for recognizing and configuring devices embedded on memory modules
US6594728B1|2003-07-15|Cache memory with dual-way arrays and multiplexed parallel output
FI80352C|1990-05-10|System foer buffertminne.
US9043669B1|2015-05-26|Distributed ECC engine for storage media
US6505305B1|2003-01-07|Fail-over of multiple memory blocks in multiple memory modules in computer system
US6584595B2|2003-06-24|Technique for correcting single-bit errors in caches with sub-block parity bits
US5164944A|1992-11-17|Method and apparatus for effecting multiple error correction in a computer memory
TWI269155B|2006-12-21|Method and checker of checking for errors in an error correction code | protected mechanism and a computer system including the checker
KR100843538B1|2008-07-04|메모리 시스템, 세그먼트 레벨 스페어링 제공 방법 및 기록 매체
US7376877B2|2008-05-20|Combined tag and data ECC for enhanced soft error recovery from cache tag errors
CN100367194C|2008-02-06|自堆栈快取存储器进行快速推测性弹出操作方法及装置
US5991902A|1999-11-23|Memory apparatus and data processor using the same
US7134057B1|2006-11-07|Off-pitch column redundancy using dynamic shifters
US7194577B2|2007-03-20|Memory latency and bandwidth optimizations
US7840874B2|2010-11-23|Speculative cache tag evaluation
US7430145B2|2008-09-30|System and method for avoiding attempts to access a defective portion of memory
同族专利:
公开号 | 公开日
WO2009076033A2|2009-06-18|
TW200931261A|2009-07-16|
EP2240856A2|2010-10-20|
WO2009076033A3|2009-08-27|
EP2240856A4|2012-08-08|
US7809980B2|2010-10-05|
EP2240856B1|2019-04-17|
TWI437436B|2014-05-11|
US20090150720A1|2009-06-11|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
JPH03122739A|1989-10-05|1991-05-24|Koufu Nippon Denki Kk|Cache memory|
JPH04243446A|1991-01-17|1992-08-31|Koufu Nippon Denki Kk|Cache registration controller|
JPH0644799A|1992-04-30|1994-02-18|Internatl Business Mach Corp <Ibm>|Pウェイ・セット・アソシエティブ・キャッシュ・メモリ構造|
JPH07110788A|1993-10-14|1995-04-25|Fujitsu Ltd|ディスクキャッシュ装置|
JP2001075865A|1999-09-02|2001-03-23|Fujitsu Ltd|キャッシュtag制御方法及びこの制御方法を用いた情報処理装置|
US20030018936A1|2001-07-17|2003-01-23|Bull Nh Information Systems Inc.|High integrity cache directory|
JP2007041932A|2005-08-04|2007-02-15|Fujitsu Ltd|キャッシュメモリ装置、半導体集積回路およびキャッシュ制御方法|JP2013120426A|2011-12-06|2013-06-17|Hitachi Ltd|ソフトエラー耐性調整機能を備えた電子システム装置及びソフトエラー耐性調整方法|AU616213B2|1987-11-09|1991-10-24|Tandem Computers Incorporated|Method and apparatus for synchronizing a plurality of processors|
CA2003338A1|1987-11-09|1990-06-09|Richard W. Cutts, Jr.|Synchronization of fault-tolerant computer system having multiple processors|
AU625293B2|1988-12-09|1992-07-09|Tandem Computers Incorporated|Synchronization of fault-tolerant computer system having multiple processors|
US4965717B1|1988-12-09|1993-05-25|Tandem Computers Inc||
EP0401994A3|1989-06-05|1991-10-23|Hewlett-Packard Company|Method of implementing error corrected memory|
US5295258A|1989-12-22|1994-03-15|Tandem Computers Incorporated|Fault-tolerant computer system with online recovery and reintegration of redundant components|
US5530960A|1991-12-17|1996-06-25|Dell Usa, L.P.|Disk drive controller accepting first commands for accessing composite drives and second commands for individual diagnostic drive control wherein commands are transparent to each other|
US5974544A|1991-12-17|1999-10-26|Dell Usa, L.P.|Method and controller for defect tracking in a redundant array|
US5313585A|1991-12-17|1994-05-17|Jeffries Kenneth L|Disk drive array with request fragmentation|
US5473761A|1991-12-17|1995-12-05|Dell Usa, L.P.|Controller for receiving transfer requests for noncontiguous sectors and reading those sectors as a continuous block by interspersing no operation requests between transfer requests|
US5506977A|1991-12-17|1996-04-09|Dell Usa, L.P.|Method and controller for minimizing reads during partial stripe write operations to a disk drive|
US5483641A|1991-12-17|1996-01-09|Dell Usa, L.P.|System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities|
US5313626A|1991-12-17|1994-05-17|Jones Craig S|Disk drive array with efficient background rebuilding|
DE69421379T2|1994-03-31|2000-05-11|St Microelectronics Inc|Wiederverwendbarer Mehrwegsatz assoziativer Cache-Speicher|
US6412051B1|1996-11-27|2002-06-25|International Business Machines Corp.|System and method for controlling a memory array in an information handling system|
US5883904A|1997-04-14|1999-03-16|International Business Machines Corporation|Method for recoverability via redundant cache arrays|
JPH10334695A|1997-05-27|1998-12-18|Toshiba Corp|キャッシュメモリ及び情報処理システム|
US6625756B1|1997-12-19|2003-09-23|Intel Corporation|Replay mechanism for soft error recovery|
US6480975B1|1998-02-17|2002-11-12|International Business Machines Corporation|ECC mechanism for set associative cache array|
US7010575B1|2000-03-31|2006-03-07|Emc Corporation|Data storage system having separate data transfer section and message network having bus arbitration|
US6708294B1|1999-09-08|2004-03-16|Fujitsu Limited|Cache memory apparatus and computer readable recording medium on which a program for controlling a cache memory is recorded|
US6625749B1|1999-12-21|2003-09-23|Intel Corporation|Firmware mechanism for correcting soft errors|
US6615366B1|1999-12-21|2003-09-02|Intel Corporation|Microprocessor with dual execution core operable in high reliability mode|
US6668308B2|2000-06-10|2003-12-23|Hewlett-Packard Development Company, L.P.|Scalable architecture based on single-chip multiprocessing|
US6671822B1|2000-08-31|2003-12-30|Hewlett-Packard Development Company, L.P.|Method and system for absorbing defects in high performance microprocessor with a large n-way set associative cache|
US6631433B1|2000-09-27|2003-10-07|Emc Corporation|Bus arbiter for a data storage system|
US6684268B1|2000-09-27|2004-01-27|Emc Corporation|Data storage system having separate data transfer section and message network having CPU bus selector|
US6901468B1|2000-09-27|2005-05-31|Emc Corporation|Data storage system having separate data transfer section and message network having bus arbitration|
US6609164B1|2000-10-05|2003-08-19|Emc Corporation|Data storage system having separate data transfer section and message network with data pipe DMA|
US6918071B2|2001-04-20|2005-07-12|Sun Microsystems, Inc.|Yield improvement through probe-based cache size reduction|
GB2378277B|2001-07-31|2003-06-25|Sun Microsystems Inc|Multiple address translations|
KR100481849B1|2001-12-04|2005-04-11|삼성전자주식회사|용량 변경이 가능한 캐쉬 메모리 및 이를 구비한 프로세서칩|
JP3953903B2|2002-06-28|2007-08-08|富士通株式会社|キャッシュメモリ装置、及び、参照履歴のビット誤り検出方法|
US7181578B1|2002-09-12|2007-02-20|Copan Systems, Inc.|Method and apparatus for efficient scalable storage management|
US7399043B2|2002-12-02|2008-07-15|Silverbrook Research Pty Ltd|Compensation for uneven printhead module lengths in a multi-module printhead|
AT366985T|2003-09-04|2007-08-15|Koninkl Philips Electronics Nv|INTEGRATED CIRCUIT AND METHOD FOR CACHE-MIXING|
EP1684180A4|2003-11-12|2008-10-29|Matsushita Electric Ind Co Ltd|Cache memory and control method thereof|
US7949841B2|2006-12-08|2011-05-24|Microsoft Corporation|Protection of critical memory using replication|US8713254B1|2008-03-31|2014-04-29|Emc Corporation|System and method for improving cache efficiency|
US8356239B2|2008-09-05|2013-01-15|Freescale Semiconductor, Inc.|Selective cache way mirroring|
US8291305B2|2008-09-05|2012-10-16|Freescale Semiconductor, Inc.|Error detection schemes for a cache in a data processing system|
US9753858B2|2011-11-30|2017-09-05|Advanced Micro Devices, Inc.|DRAM cache with tags and data jointly stored in physical rows|
US20130346695A1|2012-06-25|2013-12-26|Advanced Micro Devices, Inc.|Integrated circuit with high reliability cache controller and method therefor|
US8984368B2|2012-10-11|2015-03-17|Advanced Micro Devices, Inc.|High reliability memory controller|
US9400711B2|2014-04-14|2016-07-26|Freescale Semiconductor, Inc.|Content addressable memory with error detection|
US10474526B2|2016-09-30|2019-11-12|Intel Corporation|System and method for granular in-field cache repair|
法律状态:
2011-11-22| A621| Written request for application examination|Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111121 |
2011-11-22| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111121 |
2012-02-28| RD04| Notification of resignation of power of attorney|Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20120227 |
2013-05-29| A977| Report on retrieval|Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130529 |
2013-09-12| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130911 |
2013-10-09| A02| Decision of refusal|Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20131008 |
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]